﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace FileClient.Models
{
    /// <summary>  
    /// 表示单个文件的下载任务，包含进度、状态和控制信息。  
    /// </summary>  
    public class DownloadTask
    {
        /// <summary>  
        /// 文件名。  
        /// </summary>  
        public string FileName { get; set; } = string.Empty;
        /// <summary>  
        /// 文件总大小（字节）。  
        /// </summary>  
        public long TotalSize { get; set; }
        /// <summary>  
        /// 已接收的字节数。  
        /// </summary>  
        public long BytesReceived { get; set; }
        /// <summary>  
        /// 当前下载速度（字节/秒）。  
        /// </summary>  
        public long DownloadSpeed { get; set; }
        /// <summary>  
        /// 预计剩余时间。  
        /// </summary>  
        public TimeSpan EstimatedTimeRemaining { get; set; }
        /// <summary>  
        /// 当前下载状态（如“下载中”、“已暂停”等）。  
        /// </summary>  
        public string Status { get; set; } = string.Empty;
        /// <summary>  
        /// 用于控制该任务取消/暂停的令牌源。  
        /// </summary>  
        public required CancellationTokenSource TokenSource { get; set; }
    }
}
